#!/bin/bash

# Travail et idée originale de "Jotenakis"

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


#------------------------------------------------------------------------------#
# Initialisation des variables "utilisateur"                                   #
#------------------------------------------------------------------------------#
DB_FILENAME="radios.csv"; # nom du fichier local par défaut contenant les adresses des radios
DB_URL="http://ludomatic.fr/index.php/dlm/1/6"; # lien vers le fichier public des adresses de stations radio
SCRIPT_PAGEWEB="http://ubunteros.tuxfamily.org"/; # site du projet
SCRIPT_DATADIR="radios_rec";
SCRIPT_HISTORY="
0.81 (2007-03-22)jmrenouard<jmrenouard@gmail.com>
      - Ajout option pour obtenir la liste des radios

0.8 (2007-02-27)jmrenouard<jmrenouard@gmail.com>
      - Revue des paramètres en ligne de commande

0.76 (2007-02-22)jmrenouard <jmrenouard@gmail.com>
      - Fusion avec l'enregistreur de flux
      - Correctif en sortie de script sur les couleurs du shell
      - Affichage radio diffusée et radio enregistrée

0.75 (2007-02-20) jmrenouard <jmrenouard@gmail.com>
      - Zapping complet pour tous les modes

0.74 (2007-02-19) jmrenouard <jmrenouard@gmail.com>
      - Utilisation de Xdialog si Xdialog est installé
      - Utilisation de cdialog si cdialog est installé
      - Zapping possible avec dialog

0.73d (2007-02-21) lexdu <lexdu@free.fr>
      - le zapping de radio (merci Jean-Marie RENOUARD ;) )
      - l'enregistrement daté et titré du flux
      - l'enregistrement d'un flux pendant l'écoute d'un autre
      - l'arrêt de l'enregistrement sans arrêter l'écoute
      - modification de l'affichage (affichage en bas de liste de la radio en cours d'écoute, si il y en a une et de la radio en cours d'enregistrement, si il y en a une)

0.73c (2007-02-18) lexdu <lexdu@free.fr>
      - Re-affichage de la liste des radios à l'interruption de l'écoute de la radio en cours

0.73b (2007-02-18) lexdu <lexdu@free.fr>
      - Affichage du nom de la station plutôt que de l'url du flux

0.73  (2007-02-18) Ludomatic <ludomatic@leonux.net>
      - Suite à la découverte de problèmes de droits lors de l'enregistrement du
        fichier des radios, déplacement de \"radios.csv\" vers le dossier .radios
        du dossier \$HOME.

0.72  (2007-02-17) Ludomatic <ludomatic@leonux.net>
      - Essai de correction d'un \"bug\" : fermeture intempestive du script lors
        de son exécution dans un terminal. Ajout d'une pause à la sortie du
        script si la variable d'environnement DEBUGME existe.

0.71  (2007-01-31) Balkoth
      - Légère optimisation du code
      - Téléchargement automatique du fichier des radios si il n'est pas trouvé
      (2007-01-31) Ludomatic <ludomatic@leonux.net>
      - Fonction demandant l'autorisation de télécharger le fichier des radios
      - Correction d'un bug empêchant la lecture de l'adresse par défaut (repéré
        par Balkoth!)

0.70  (2007-01-30) Ludomatic <ludomatic@leonux.net>
      Grosse modification structurelle pour cette version 0.7 : séparation
      entre la liste des adresses des radios et le 'moteur' de lecture.
      Le nom du fichier des radios est 'radios.csv' et sera cherché dans
      l'ordre aux emplacements suivants :
      - dossier courant du script 'radios.sh'
      - dossier de l'utilisateur exécutant le script

0.6d  (2007-01-30) Ludomatic <ludomatic@leonux.net>
      Ajout de 27 stations (!) grace à Mail1
      Merci à Fran pour la découverte de CanalB!

0.6c  (2007-01-29) Ludomatic <ludomatic@leonux.net>
      Correction de l'adresse du flux OuiFM (merci à Mail1)
      Ajout des stations RTL2 et W3 Blues Radio sur proposition de Fran

0.6b- Ludomatic <ludomatic@leonux.net> (22/11/2006)
      Correction d'un bug concernant le fond d'écran uni (merci à Léonux et
      Eupythal)
      Ajout de la fonction 'PlusBlancQueBlanc()' qui nettoie tout à la fermeture

0.6 - Ludomatic <ludomatic@leonux.net> (21/11/2006)
      Merci à Eupythal pour l'ajout des stations RTL et OuiFM, et ses idées
      mises en pratique :
      > Suppression des messages mplayer lors de la lecture
      > Rester dans une 'boucle' pour proposer continuellement les stations

0.5 - Ludomatic <ludomatic@leonux.net> (19/11/2006)
      Débugage des affichages colorés,
      Optimisation de quelques parties du code,
      Nettoyage du code.

0.4 - Zarer <????@gmail.com>
      Tests et ajout de stations radio

0.3 - Ludomatic <ludomatic@leonux.net>
      Quelques mises en Fonctions et création de Variables grace aux documents
      suivants :
      > http://www.c-sait.net/cours/scripts.php
      > http://www.linuxcommand.org/wss0120.php
      > http://www.arachnoid.com/linux/shell_programming.html

0.2 - Leonux <leonux@leonux.net>
      Refonte du script et publication sur le \"Guide de survie de l'ubuntiste
      débutant\".

0.1 - Jotenakis
      Idée et script original pour Suse Linux.
";


#------------------------------------------------------------------------------#
# Initialisation des variables internes "automatiques"                         #
#------------------------------------------------------------------------------#
NO_ARGS=0
NONE=0
FATAL=1
ERROR=2
WARN=3
INFO=4
DEBUG=5
ALL=6
DEBUG_MODE="$WARN"
SCRIPT_VERSION=$( echo $SCRIPT_HISTORY | cut -d " " -f1 ); # version courante
SCRIPT_NAME=$( basename $0 ); # nom du script courant
SCRIPT_PATH=$( dirname $0 ); # chemin vers le script courant
MPLAYER_PATH=$( which mplayer ); # emplacement de l'exécutable mplayer
MPLAYER="$MPLAYER_PATH -msglevel all=-1 "; # paramètres à fournir à mplayer
MENCODER_PATH=$( which mencoder ); # emplacement de l'exécutable mencoder
MENCODER="$MPLAYER_PATH "; # paramètres à fournir à mencoder
HOME_PATH=$HOME; # dossier de l'utilisateur
DATA_PATH="$HOME/$SCRIPT_DATADIR"; # dossier de travail de l'application
PID_FILE=/tmp/pid_mplayer_radio # fichier contenant le PID du mplayer lecteur de radio
PID_REC_FILE=/tmp/pid_rec_radio # fichier contenant le PID du mplayer enregistreur de radio
DIR_REC_RADIO="$HOME/$SCRIPT_DATADIR"; # répertoire par défaut d'enregistrement des radios

XDIALOG_PATH=$( which Xdialog ); #emplacement de l'executable dialog
CDIALOG_PATH=$( which dialog ); #emplacement de l'executable dialog
#VERSION PAR DEFAUT
DIALOG_PATH=$XDIALOG_PATH
FILE_CSV="$SCRIPT_PATH/$DB_FILENAME";
#------------------------------------------------------------------------------#
# Tests initiaux 				                               #
#------------------------------------------------------------------------------#

if [ -z "$MPLAYER_PATH" ]
then
    # MPlayer n'est pas installé ou ne peux pas être trouvé : on sort
    log ERROR "Vous devez installer le lecteur \"mplayer\" avant de continuer. \n";
    exit 1;
fi

if [ ! -d "$HOME/$SCRIPT_DATADIR" ]
then
    echo "$HOME/$SCRIPT_DATADIR n'existe pas, creons le!"
    mkdir -p "$HOME/$SCRIPT_DATADIR"
fi

if [ ! -d "$DATA_PATH" ]
then
    # Le dossier de travail du script n'existe pas, on le créé
    mkdir -p $DATA_PATH;
fi
